//#region Copyright
////       Copyright (c) 2009 - Antoine Jaussoin - http://www.jaussoin.com/blog/
//// 
////        This program is free software: you can redistribute it and/or modify
////        it under the terms of the GNU General Public License as published by
////        the Free Software Foundation, either version 3 of the License, or
////        (at your option) any later version.
//// 
////        This program is distributed in the hope that it will be useful,
////        but WITHOUT ANY WARRANTY; without even the implied warranty of
////        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
////        GNU General Public License for more details.
//// 
////        You should have received a copy of the GNU General Public License
////        along with this program.  If not, see <http://www.gnu.org/licenses/>.
//#endregion
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using FT.Architecture.Example.Core.Repositories;
//using FT.Architecture.Example.Core.Entities.Pets;

//namespace FT.Architecture.Example.Console.Benchmark.AllPets
//{
//    public class AllPetsNHibernateLightBenchmark : BenchmarkBase
//    {
//        /// <summary>
//        /// Return all the pets
//        /// </summary>
//        /// <returns></returns>
//        protected override IList<BenchmarkItem> RunInternal(BenchmarkTimer timer)
//        {
//            using (var t = DAL.GetUnitOfWork(true))
//            {
//                timer.ReportEvent("Unit of Work created");

//                var pets = t.GetPetRepository().GetPetViews();
//                timer.ReportEvent("Get All called");

//                IList<BenchmarkItem> results = new List<BenchmarkItem>();

//                foreach (var pet in pets)
//                {
//                    results.Add(new BenchmarkItem(pet.Name, pet.ID, pet.Name));
//                }
//                timer.ReportEvent("Results collection built");

//                return results;
//            }
//        }

//        /// <summary>
//        /// Code that is run before run
//        /// </summary>
//        protected override void BeforeRun()
//        {
            
//        }

//        /// <summary>
//        /// Code that is run after run
//        /// </summary>
//        protected override void AfterRun()
//        {
            
//        }

//        /// <summary>
//        /// Benchmark name
//        /// </summary>
//        public override string Name
//        {
//            get { return "NHibernate Light"; }
//        }

//        /// <summary>
//        /// Benchmark description
//        /// </summary>
//        public override string Description
//        {
//            get { return "NHibernate, but only returns wanted fields, not the whole object"; }
//        }
//    }
//}
